U kunt alleen binnen de gedefinieerde bereiken toegang krijgen tot matrixonderdelen en leden van collecties. Voor deze fout zijn de volgende oorzaken en oplossingen mogelijk:
Misschien is het subscript groter of kleiner dan het bereik van mogelijke subscripts of er zijn op dit punt in de toepassing nog geen dimensies aan de matrix toegewezen. Controleer de boven- en ondergrens van de declaratie van de matrix. Gebruik de functies UBound en LBound om matrixgrenzen aan te geven als u werkt met matrices waarvan de grootte wordt gewijzigd. Controleer de spelling van de variabelennaam wanneer de index als een variabele is opgegeven.
Dim MyArray() As Integer
MyArray(8) = 234 ' Causes Error 9.
In Visual Basic worden niet-opgegeven matrixbereiken zoals het bereik 0 - 10 niet impliciet van een dimensie voorzien. Als u het aantal onderdelen van een matrix expliciet wilt opgeven, gebruikt u Dim of ReDim.
Probeer de constructie For Each...Next te gebruiken in plaats van indexonderdelen op te geven.
Als u bijvoorbeeld de operator ! in combinatie met een collectie gebruikt, geeft ! impliciet een sleutel op. Zo is object!sleutelnaam.waarde bijvoorbeeld equivalent aan object.onderdeel(sleutelnaam).waarde. In dit geval treedt een fout op als keyname een ongeldige sleutel is in de collectie. Gebruik een geldige sleutelnaam of index voor de collectie om de fout op te lossen.
Selecteer voor aanvullende informatie het desbetreffende item en druk op F1 (in Windows) of op HELP (op de Macintosh).